home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / p4 / p4-1_2b.lha / p4-1.2b / usc / usc.h < prev   
C/C++ Source or Header  |  1993-02-06  |  3KB  |  152 lines

  1. /*
  2.  * USC.H  (Public header file for the Microsecond Clock package)
  3.  *     This header file has to be included by an application using
  4.  * the USC function calls.
  5.  *
  6.  * Written by:  Arun Nanda    (07/17/91)
  7.  * Modified by R. Butler
  8.  *
  9.  * The following machine-specific libraries need to be linked in
  10.  * with the application using the UST functions:
  11.  *
  12.  */
  13.  
  14. #ifndef _USC_DEFS_   /* takes care of multiple inclusion of this file */
  15. #define _USC_DEFS_
  16.  
  17.  
  18. #ifdef SUN_IPC
  19. #define SUN
  20. #endif
  21.  
  22. #ifdef HP_IPC
  23. #define HP
  24. #endif
  25.  
  26. #ifdef RS6000_IPC
  27. #define RS6000
  28. #endif
  29.  
  30. #ifdef IBM3090_IPC
  31. #define IBM3090
  32. #endif
  33.  
  34. #ifdef TITAN_IPC
  35. #define TITAN
  36. #endif
  37.  
  38. #ifdef SGI_IPC
  39. #define SGI
  40. #endif
  41.  
  42.  
  43.  
  44. /* ---------------------
  45.  Global declarations
  46. --------------------- */
  47.  
  48. typedef unsigned long usc_time_t;
  49.  
  50. #ifndef VOID
  51. #    if defined(BALANCE) || defined(FX8)
  52. #        define VOID int
  53. #    else
  54. #        define VOID void
  55. #    endif
  56. #endif
  57.  
  58. /* --------------------------------
  59.  Machine dependent declarations
  60. -------------------------------- */
  61.  
  62. #if defined(MULTIMAX)
  63.  
  64.      extern unsigned *usc_multimax_timer;
  65.  
  66. #endif
  67.  
  68.  
  69. #if defined(SYMMETRY) || defined(SYMMETRY_PTX)
  70.  
  71. #ifndef GETUSCLK
  72. #    include <usclkc.h>
  73. #endif
  74. #endif 
  75.  
  76. extern usc_time_t usc_MD_rollover_val;
  77.  
  78. /* -----------------------
  79.  user interface macros
  80. ----------------------- */
  81.  
  82. #if defined(MULTIMAX)
  83.  
  84. #    define usc_clock() ((usc_time_t) *usc_multimax_timer)
  85. #    define usc_rollover_val()  (usc_MD_rollover_val)
  86.  
  87. #else
  88.  
  89. #if defined(SYMMETRY) || defined(SYMMETRY_PTX)
  90.  
  91. #    define usc_clock() ((usc_time_t) getusclk())
  92. #    define usc_rollover_val()  (usc_MD_rollover_val)
  93.  
  94. #else
  95.  
  96. #if defined(TC_2000) || defined(TC_2000_TCMP)
  97.  
  98. #    define usc_clock() usc_MD_clock()
  99. #    define usc_rollover_val()  (usc_MD_rollover_val)
  100.  
  101. #else
  102.  
  103. #if defined (NCUBE)
  104.  
  105. #    define usc_clock() usc_MD_clock()
  106. #    define usc_rollover_val()  (usc_MD_rollover_val)
  107.  
  108. #else
  109.  
  110. #if defined (IPSC860)
  111.  
  112. #    define usc_clock() usc_MD_clock()
  113. #    define usc_rollover_val()  (usc_MD_rollover_val)
  114.  
  115. #else
  116.  
  117. #if defined(FX2800)  ||   defined(FX2800_SWITCH)
  118. #    define usc_clock() usc_MD_clock()
  119. #    define usc_rollover_val()  (usc_MD_rollover_val)
  120. #else 
  121.  
  122. #if defined(SUN) || defined(DEC5000) || defined(HP) \
  123.     || defined(IBM3090) || defined(RS6000) \
  124.     || defined(NEXT) || defined(TITAN) || defined(GP_1000) \
  125.     || defined(KSR) \
  126.     || defined(SGI) || defined(FX8)
  127.  
  128. #    define usc_clock() usc_MD_clock()
  129. #    define usc_rollover_val()  (usc_MD_rollover_val * 1000000 - 1)
  130.  
  131. #else
  132.  
  133. #    define usc_clock() 0
  134. #    define usc_rollover_val() 0
  135.  
  136. #endif
  137. #endif
  138. #endif
  139. #endif
  140. #endif
  141. #endif
  142. #endif
  143.  
  144. /* ----------------------
  145.   function prototypes
  146. ---------------------- */
  147.  
  148. VOID usc_init();
  149. usc_time_t usc_MD_clock();
  150.  
  151. #endif
  152.